package com.baizhi.listx;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * java.util.List接口， 通常称之为线性表
 * List集合继承自Collection  特点： 可以存放重复元素，且有序，有下标
 *
 * 常用实现类
 *      java.util.ArrayList:  内部使用数组实现,  查询快，增删慢
 *      java.util.LinkedList: 内部使用链表实现
 */
public class ListDemo01 {
    public static void main(String[] args) {
        List<String > a = new ArrayList<>();
        a.add("1");

        List<String> list = new ArrayList<>();
        list.add("one");
        list.add("two");
        list.add("three");
        list.add("four");
        list.add("five");
        System.out.println(list);

        /*
            E  get(int index)
            获取给定下标处对应的元素
         */
        //获取第三个元素
        String s = list.get(2);
        System.out.println(s);

        for (int i = 0; i < list.size(); i++) {
            String s1 = list.get(i);
            System.out.println(s1);
        }


        /*
          E  set(int index,E e)
          将给定元素设置到指定位置，返回值为该位置被替换的元素
         */
        String old = list.set(0, "一");
        System.out.println("old="+old);
        System.out.println(list);

        /*
           反转集合
         */
        for (int i = 0; i < list.size()/2; i++) {
            String e = list.get(i); // 当i=0时  e=一
            e = list.set(list.size()-1-i,e);
            list.set(i,e);

        }
        System.out.println(list);

        /*
            static void reverse(List<?> list)

            Collections类提供了一个静态方法 用于 反转指定列表中元素的顺序。
         */

        Collections.reverse(list);
        System.out.println(list);
    }
}
